lq_factor Interface

public interface lq_factor

Module Procedures

private pure subroutine lq_factor_no_pivot(a, tau, lq, l, q)

Computes the LQ factorization of an M-by-N matrix where is a lower triangular (or lower trapezoidal) matrix and is a orthogonal matrix.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), dimension(:,:) :: a

The M-by-N matrix to factor.

real(kind=real64), intent(out), optional, allocatable, target, dimension(:) :: tau

A MIN(M, N)-element array used to store the scalar factors of the elementary reflectors.

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: lq

An M-by-N matrix with the elements below the diagonal containing the MIN(M,N)-by-N lower trapezoidal matrix ( is lower triangluar if M >= N). The elements above the diagonal, along with the array tau, represent the orthogonal matrix as a product of elementary reflectors.

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: l

The M-by-N lower trapezoidal matrix .

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: q

The N-by-N orthogonal matrix .

private pure subroutine lq_factor_no_pivot_cmplx(a, tau, lq, l, q)

Computes the LQ factorization of an M-by-N matrix where is a lower triangular (or lower trapezoidal) matrix and is a orthogonal matrix.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(in), dimension(:,:) :: a

The M-by-N matrix to factor.

complex(kind=real64), intent(out), optional, allocatable, target, dimension(:) :: tau

A MIN(M, N)-element array used to store the scalar factors of the elementary reflectors.

complex(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: lq

An M-by-N matrix with the elements below the diagonal containing the MIN(M,N)-by-N lower trapezoidal matrix ( is lower triangluar if M >= N). The elements above the diagonal, along with the array tau, represent the orthogonal matrix as a product of elementary reflectors.

complex(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: l

The M-by-N lower trapezoidal matrix .

complex(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: q

The N-by-N orthogonal matrix .